radionica_vektori_matrice

automatic_names(True) 
        
a=[1,2,3] b=[6,-4,2] 
        
a+b 
        
2*a 
        
a-b 
        
a*b 
        
a[1]=-10 
        
a 
        
c=(1,2,3) d=(6,-4,2) 
        
c+d 
        
c-d 
        
c[1]=-9 
        

Vektori

help(vector) 
        
a=vector((1,2,3)) b=vector([6,-4,2]) 
        
a.parent() 
        
a1=vector(QQ,(1,2,3)) 
        
a1.parent() 
        
a+b 
        
2*a 
        
a-b 
        
2/3*a-5*b 
        
a.norm() 
        
norm(a) 
        
a.dot_product(b) 
        
a.cross_product(b) 
        
def SP(v1,v2): v1=vector(v1) v2=vector(v2) return v1.dot_product(v2) 
        
SP((1,2,3),[0,-2,1]) 
        
SP(a,b) 
        

a⃗ ×(b⃗ +c⃗ )=a⃗ ×b⃗ +a⃗ ×c⃗ 

a=vector((a_x,a_y,a_z)) b=vector((b_x,b_y,b_z)) c=vector((c_x,c_y,c_z)) 
        
lijeva_strana=a.cross_product(b+c) desna_strana=a.cross_product(b)+a.cross_product(c) 
        
lijeva_strana 
        
desna_strana 
        
lijeva_strana-desna_strana 
        
rez=lijeva_strana-desna_strana 
        
rez 
        
rez.apply_map(lambda t:expand(t)) 
        

Odredite m∈R tako da vektor a⃗  zatvara jednake kutove s vekltorima b⃗  i c⃗ 

a=vector((2*m,1,1-m)) b=vector((-1,3,0)) c=vector((5,-1,8)) 
        
jednadzba=a.dot_product(b)/(norm(a)*norm(b))==a.dot_product(c)/(norm(a)*norm(c)) jednadzba 
        
solve(jednadzba,m) 
        

vektor nad simboličkim prstenom

v=vector((2^(1/3),-4,1)) 
        
v.parent() 
        

vektor nad R

w=vector(RR,(2^(1/3),-4,1)) 
        
w 
        
w1=vector(RealField(200),(2^(1/3),-4,1)) 
        
w1 
        

vektor definiran preko formule

vector(i^2 for i in xrange(5)) 
        

vektori nad konačnim poljem

v1=vector(GF(3),(1,1,0)) v2=vector(GF(3),(2,1,2)) 
        
v1+v2 
        
3*v1 
        
5*v1 
        
vector(GF(3),(i^2 for i in xrange(5))) 
        

Matrice

help(matrix) 
        
A=matrix([[2,3,4],[-1,-5,1]]) B=matrix([[8,5,2],[0,-2,7]]) 
        
A1=matrix(2,3,[2,3,4,-1,-5,1]) 
        
A 
        
A1 
        
A[0,0] 
        
A[1,1] 
        
B 
        
A+B 
        
A-B 
        
A*B 
        
C=matrix([[3,1],[6,2],[-5,4]]) 
        
C 
        
A*C 
        
-3/2*A 
        
A.T 
        
A.apply_map(sin) 
        
A.apply_map(lambda t:t-cos(t)) 
        
A.parent() 
        
A2=matrix(QQ,[[2,3,4],[-1,-5,0]]) 
        
A3=matrix(QQ,2,3,[2,3,4,-1,-5,0]) 
        
A2.parent() 
        
A3 
        

matrice nad prstenom

A=matrix([[2,3,15],[0,16,22]]) B=matrix([[19,25,18],[19,23,7]]) 
        
A,B,A+B,A-B 
        
A=matrix(Integers(26),[[2,3,15],[0,16,22]]) B=matrix(Integers(26),[[19,25,18],[19,23,7]]) 
        
A,B,A+B,A-B 
        

matrice definirane formulom

matrix(3,4,lambda i,j:i^2-j^2) 
        
matrix(3,4,lambda i,j:(i+1)^2-(j+1)^2) 
        
matrix(GF(3),3,4,lambda i,j:(i+1)^2-(j+1)^2) 
        
matrix(3,4,lambda i,j: cos((i+1)*pi/2) if i>j else log(i+j+2,2)) 
        

Ispisivanje velikih matrica

M=matrix(15,30,lambda i,j:(i-j)/(i+j+1)) 
        
M 
        
print M.str() 
        
f=open('M.txt','w') f.write(M.str()) f.close() 
        
M2=matrix(300,200,lambda i,j:2*i-j) 
        
f=open('M2.txt','w') f.write(M2.str()) f.close() 
        

Kvadratne matrice

A=matrix([[5,3],[19,1]]) B=matrix(Integers(26),[[5,3],[19,1]]) 
        
A.det() 
        
B.det() 
        
A^-1 
        
B^-1 
        
det(A) 
        
A2=matrix([[14,3],[25,1]]) B2=matrix(Integers(26),[[14,3],[25,1]]) 
        
A2.det(),B2.det() 
        
A2^-1 
        
B2^-1 
        
C=matrix(Integers(26),[[3,2],[1,5]]) 
        
C.det() 
        
C^-1 
        
reset('a') 
        
det(matrix(5,5,[a,a,a,a,a,-2,a,a,a,a,2,0,a,a,a,-4,0,0,a,a,4,0,0,0,a])) 
        

svojstvene vrijednosti

A=matrix([[5,-6,-6],[-1,4,2],[3,-6,-4]]);A 
        
A.charpoly() 
        
A.charpoly(t) 
        
A.fcp() 
        
A.minpoly() 
        
A.minpoly().factor() 
        
A.eigenvalues() 
        
A.eigenvectors_right() 
        
A.eigenspaces_right() 
        
A.eigenspaces_right(algebraic_multiplicity=True) 
        
D,P=A.eigenmatrix_right() 
        
D,P 
        
P^-1*A*P 
        
P^-1*A*P==D 
        
A.eigenspaces_left() 
        
matrix([[1,-2,-2]])*A 
        
M=matrix(QQ,[[0,-1,0],[1,0,0],[0,0,2]]) 
        
M.eigenvalues() 
        
M.parent() 
        
M.eigenvalues(extend=False) 
        

jezgra i slika

A=matrix([[2,3,5,-3,-2],[3,4,3,-1,-3],[5,6,-1,3,-5]]) B=matrix(QQ,[[2,3,5,-3,-2],[3,4,3,-1,-3],[5,6,-1,3,-5]]) 
        
A.right_kernel() 
        
B.right_kernel() 
        
A.echelon_form() 
        
B.echelon_form() 
        
A.rank() 
        
A.right_nullity() 
        
B1=matrix([[1,2,-1,3,4],[2,4,-2,6,8],[1,3,2,2,6],[1,4,5,1,8],[2,7,3,3,9]]) B2=matrix(QQ,[[1,2,-1,3,4],[2,4,-2,6,8],[1,3,2,2,6],[1,4,5,1,8],[2,7,3,3,9]]) 
        
B1 
        
B1.echelon_form() 
        
B2.echelon_form() 
        

Vektorski prostori

V=VectorSpace(QQ,3);V 
        
V1=span([[1,0,0],[0,1,0],[0,0,1]],QQ);V1 
        
V.basis() 
        
V.basis_matrix() 
        
V.dimension() 
        
vector((1,3,2)) in V, vector((1,2/3,1.41)) in V, vector((1,2/3,2^(1/3))) in V, vector((1,2/3,1.41,5)) in V 
        

promjena baze u vektorskom prostoru

V=V.span_of_basis([[1,0,0],[1,2,0],[3,4,5]]);V 
        
V.basis() 
        
V.coordinates((1,1,4)) 
        

još vektorskih prostora

U=VectorSpace(RealField(200),4);U 
        
U.basis_matrix() 
        
C=VectorSpace(CC,4);C 
        
C.basis_matrix() 
        
C1=VectorSpace(ComplexField(200),3);C1 
        
C1.basis_matrix() 
        
W=VectorSpace(SR,5) 
        
W.basis_matrix() 
        
vector((1,3,2/3,5.67,1)) in W, vector((2,5^(2/3),1,0.33,2.2)) in W, vector((2,sin(3),7,2.1,log(2,3))) in W,vector((3,3+I,2,1,0)) in W 
        
T=VectorSpace(QQbar,3);T 
        

vektorski prostori nad konačnim poljem

GF(3).list() 
        
K=VectorSpace(GF(3),4);K 
        
K.list() 
        
K.cardinality() 
        

generiranje potprostora

U=span([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]],QQbar) W=span([[1,2,-4,11],[2,4,-5,14]],QQbar) 
        
U 
        
W 
        
U==W 
        
U1=(QQbar^4).subspace([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]]) W1=(QQbar^4).subspace([[1,2,-4,11],[2,4,-5,14]]) 
        
U1 
        
W1 
        
W2=(QQbar^4).subspace_with_basis([[1,2,-4,11],[2,4,-5,14]]);W2 
        
W2.basis() 
        
U2=(QQbar^4).subspace_with_basis([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]])